package com.gusheng.mybatisplug.auth;

/**
 * 	数据权限拦截器
 * @author Administrator
 *
 */
public interface IDataAuth {
	/**
	 * 	在此处配置拦截器名称,例如功能的code
	 * <br>
	 * 	此处的返回值需要和@DataAuth( value )中的value对应
	 * @return
	 */
	public String getAuthName();

	/**
	 * 	在这里通过对Sql的改写来实现数据权限的实现<br>
	 * 	例如添加" select * from ( [targetSql] ) where [数据权限条件] "<br>
	 * 	亦或者 [targetSql] where [数据权限条件]<br>
	 * 	将改写后的返回->执行->获取权限限制后的数据<br>
	 * @param targetSql 查询的原SQL
	 * @return
	 */
	public String auth( String targetSql );

}
